package com.tledu.zyf.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.tledu.zyf.exception.SSMException;
import com.tledu.zyf.model.User;
import com.tledu.zyf.service.IUserService;

/**
 * 使用Controller注解之后,在方法上可以通过return的jsp或者html页面的名字,通过视图解析器,就能跳转到指定页面
 * 如果没有Controller注解,这个类中的方法是不会被请求过去的 所对应的层也是controller层,表现层
 * 
 * @author yingfing
 * @date 2020年10月17日 @time 下午4:10:10
 */
@Controller
public class IndexController {

	/**
	 * 从spring容器中,找到一个和这个属性数据类型匹配的实例化对象注入进来
	 * 
	 * 默认使用byType,根据类型匹配,如果只能找到一个这个数据类型的对象的时候,肯定没问题,但是如果找到了多个同一个类型的对象的时候,
	 * 就会自动更改为byName来进行匹配,根据set方法对应的参数列表的局部变量名来匹配
	 */
	@Autowired
	private IUserService userService;

	@RequestMapping({ "/", "/login" })
	public String login() {
		return "login";
	}

	@RequestMapping("index")
	public String index1() {
		return "index";
	}

	/**
	 * method : RequestMethod.POST 设置请求方式为 POST
	 * 
	 * @param user
	 * @param session
	 * @return
	 * @throws SSMException
	 */
	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public String login(User user, HttpSession session) throws SSMException {

		User loginUser = userService.login(user);
		// 把登录的信息保存到 session 中
		session.setAttribute("loginUser", loginUser);
		return "redirect:/index";
	}
}
